#ifndef dq_List_h
#define dq_List_h

#include <vector>

namespace serika
{
	namespace dq
	{
#define DECLARE_LIST(Type, ListName) \
	class Type; \
	typedef std::vector<Type*> ListName;

#define DECLARE_SIMPLE_LIST(Type) \
	DECLARE_LIST(Type, Type##s)

		DECLARE_SIMPLE_LIST(Item)
		DECLARE_SIMPLE_LIST(PropertyTemplate)
		DECLARE_SIMPLE_LIST(Town)
		DECLARE_LIST(Property, Properties)
		DECLARE_LIST(ItemCategory, ItemCategories)
		DECLARE_LIST(Alchemy, Alchemies)
	}
}

#endif
